/* eslint-disable */

import { AxiosRequestConfig } from 'axios';
import { request } from '../../utils/request';

export interface PostConfAutoModifyFieldAddAndUpdateRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {};
  traceId: string;
}

/**
 * 新增和修改
 */
export async function postConfAutoModifyFieldAddAndUpdate(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostConfAutoModifyFieldAddAndUpdateRes> {
  return request(data, {
    url: '/confAutoModifyField/addAndUpdate',
    method: 'post',
    ...config,
  });
}

export interface PostConfAutoModifyFieldPageRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    current: number;
    pageSize: number;
    total: number;
    list: Array<{
      id: number;
      ftable: string; // 修改对象 t_track 歌曲 t_album 专辑 t_singer 歌手
      fcolumn: string; // 修改字段 歌曲：歌曲名 所属专辑
      primaryKey: string; // 主键字段
      primaryValue: string; // 主键值
      modifyValue: string; // 修改值
      createUser: string; // 操作人名称
      executeTime: string; // 定时执行开始时间
      remarks: string; // 备注
      isValid: number; // 是否生效 0 不生效 1 生效
      executeStatus: number; // 执行状态 0 未执行，1  已执行
      executeResult: string; // 执行结果
      insertTime: string; // 插入时间
      modifyTime: string; // 修改时间
      type: number; // 字段类型
    }>;
  };
  traceId: string;
}

/**
 * 分页查询
 */
export async function postConfAutoModifyFieldPage(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostConfAutoModifyFieldPageRes> {
  return request(data, {
    url: '/confAutoModifyField/page',
    method: 'post',
    ...config,
  });
}

export interface GetConfAutoModifyFieldIdRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    id: number;
    ftable: string; // 修改对象 t_track 歌曲 t_album 专辑 t_singer 歌手
    fcolumn: string; // 修改字段 歌曲：歌曲名 所属专辑
    primaryKey: string; // 主键字段
    primaryValue: string; // 主键值
    modifyValue: string; // 修改值
    createUser: string; // 操作人名称
    executeTime: string; // 定时执行开始时间
    remarks: string; // 备注
    isValid: number; // 是否生效 0 不生效 1 生效
    executeStatus: number; // 执行状态 0 未执行，1  已执行
    executeResult: string; // 执行结果
    insertTime: string; // 插入时间
    modifyTime: string; // 修改时间
    type: number; // 字段类型
  };
  traceId: string;
}

/**
 * 获取定时修改字段策略详情
 */
export async function getConfAutoModifyFieldId(
  id: string | number,
  data?: any,
  config?: AxiosRequestConfig,
): Promise<GetConfAutoModifyFieldIdRes> {
  return request(data, {
    url: `/confAutoModifyField/${id}`,
    method: 'get',
    ...config,
  });
}
